﻿#pragma once
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<assert.h>
#include<stdbool.h>
typedef int STDataType;
typedef struct Stack {
	STDataType* a;
	int top;
	int capacity;
}ST;
//初始化
void STInit(ST* ps);
//销毁
void STDestory(ST* ps);
//压栈
void STPush(ST* ps, STDataType x);
//出栈
void STPop(ST* ps);
//清空
bool STEMpty(ST* ps);
//获取栈顶元素
STDataType STTop(ST* ps);
bool isvalid(char* s);
//插入排序
void InsertSort(int* p, int size);
void PrintSort(int* p,int size);
//希尔排序
void ShellSort(int* p, int size);
//冒泡排序
void BubbleSort(int* p, int size);
//堆排序
void HeapSort(int* p, int size);
//选择排序
void select(int* p, int size);
//快排(递归实现）
void QuickSort(int* p, int begin, int end);
//快排非递归实现
void QuickSort2(int* p, int begin, int end);
//归并排序（递归实现）
void MergeSort(int* p, int size);
//归并排序（非递归实现）
void MergeSort2(int* p, int size);
//计数排序
void CuntSort(int* p, int size);
